package com.zenchn.model;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

public class TMiCustomerCompletionExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TMiCustomerCompletionExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andCompletionIdIsNull() {
            addCriterion("completion_id is null");
            return (Criteria) this;
        }

        public Criteria andCompletionIdIsNotNull() {
            addCriterion("completion_id is not null");
            return (Criteria) this;
        }

        public Criteria andCompletionIdEqualTo(String value) {
            addCriterion("completion_id =", value, "completionId");
            return (Criteria) this;
        }

        public Criteria andCompletionIdNotEqualTo(String value) {
            addCriterion("completion_id <>", value, "completionId");
            return (Criteria) this;
        }

        public Criteria andCompletionIdGreaterThan(String value) {
            addCriterion("completion_id >", value, "completionId");
            return (Criteria) this;
        }

        public Criteria andCompletionIdGreaterThanOrEqualTo(String value) {
            addCriterion("completion_id >=", value, "completionId");
            return (Criteria) this;
        }

        public Criteria andCompletionIdLessThan(String value) {
            addCriterion("completion_id <", value, "completionId");
            return (Criteria) this;
        }

        public Criteria andCompletionIdLessThanOrEqualTo(String value) {
            addCriterion("completion_id <=", value, "completionId");
            return (Criteria) this;
        }

        public Criteria andCompletionIdLike(String value) {
            addCriterion("completion_id like", value, "completionId");
            return (Criteria) this;
        }

        public Criteria andCompletionIdNotLike(String value) {
            addCriterion("completion_id not like", value, "completionId");
            return (Criteria) this;
        }

        public Criteria andCompletionIdIn(List<String> values) {
            addCriterion("completion_id in", values, "completionId");
            return (Criteria) this;
        }

        public Criteria andCompletionIdNotIn(List<String> values) {
            addCriterion("completion_id not in", values, "completionId");
            return (Criteria) this;
        }

        public Criteria andCompletionIdBetween(String value1, String value2) {
            addCriterion("completion_id between", value1, value2, "completionId");
            return (Criteria) this;
        }

        public Criteria andCompletionIdNotBetween(String value1, String value2) {
            addCriterion("completion_id not between", value1, value2, "completionId");
            return (Criteria) this;
        }

        public Criteria andAccountIdIsNull() {
            addCriterion("account_id is null");
            return (Criteria) this;
        }

        public Criteria andAccountIdIsNotNull() {
            addCriterion("account_id is not null");
            return (Criteria) this;
        }

        public Criteria andAccountIdEqualTo(String value) {
            addCriterion("account_id =", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdNotEqualTo(String value) {
            addCriterion("account_id <>", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdGreaterThan(String value) {
            addCriterion("account_id >", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdGreaterThanOrEqualTo(String value) {
            addCriterion("account_id >=", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdLessThan(String value) {
            addCriterion("account_id <", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdLessThanOrEqualTo(String value) {
            addCriterion("account_id <=", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdLike(String value) {
            addCriterion("account_id like", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdNotLike(String value) {
            addCriterion("account_id not like", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdIn(List<String> values) {
            addCriterion("account_id in", values, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdNotIn(List<String> values) {
            addCriterion("account_id not in", values, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdBetween(String value1, String value2) {
            addCriterion("account_id between", value1, value2, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdNotBetween(String value1, String value2) {
            addCriterion("account_id not between", value1, value2, "accountId");
            return (Criteria) this;
        }

        public Criteria andMonthIsNull() {
            addCriterion("month is null");
            return (Criteria) this;
        }

        public Criteria andMonthIsNotNull() {
            addCriterion("month is not null");
            return (Criteria) this;
        }

        public Criteria andMonthEqualTo(String value) {
            addCriterion("month =", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthNotEqualTo(String value) {
            addCriterion("month <>", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthGreaterThan(String value) {
            addCriterion("month >", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthGreaterThanOrEqualTo(String value) {
            addCriterion("month >=", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthLessThan(String value) {
            addCriterion("month <", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthLessThanOrEqualTo(String value) {
            addCriterion("month <=", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthLike(String value) {
            addCriterion("month like", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthNotLike(String value) {
            addCriterion("month not like", value, "month");
            return (Criteria) this;
        }

        public Criteria andMonthIn(List<String> values) {
            addCriterion("month in", values, "month");
            return (Criteria) this;
        }

        public Criteria andMonthNotIn(List<String> values) {
            addCriterion("month not in", values, "month");
            return (Criteria) this;
        }

        public Criteria andMonthBetween(String value1, String value2) {
            addCriterion("month between", value1, value2, "month");
            return (Criteria) this;
        }

        public Criteria andMonthNotBetween(String value1, String value2) {
            addCriterion("month not between", value1, value2, "month");
            return (Criteria) this;
        }

        public Criteria andAgentTargetIsNull() {
            addCriterion("agent_target is null");
            return (Criteria) this;
        }

        public Criteria andAgentTargetIsNotNull() {
            addCriterion("agent_target is not null");
            return (Criteria) this;
        }

        public Criteria andAgentTargetEqualTo(Integer value) {
            addCriterion("agent_target =", value, "agentTarget");
            return (Criteria) this;
        }

        public Criteria andAgentTargetNotEqualTo(Integer value) {
            addCriterion("agent_target <>", value, "agentTarget");
            return (Criteria) this;
        }

        public Criteria andAgentTargetGreaterThan(Integer value) {
            addCriterion("agent_target >", value, "agentTarget");
            return (Criteria) this;
        }

        public Criteria andAgentTargetGreaterThanOrEqualTo(Integer value) {
            addCriterion("agent_target >=", value, "agentTarget");
            return (Criteria) this;
        }

        public Criteria andAgentTargetLessThan(Integer value) {
            addCriterion("agent_target <", value, "agentTarget");
            return (Criteria) this;
        }

        public Criteria andAgentTargetLessThanOrEqualTo(Integer value) {
            addCriterion("agent_target <=", value, "agentTarget");
            return (Criteria) this;
        }

        public Criteria andAgentTargetIn(List<Integer> values) {
            addCriterion("agent_target in", values, "agentTarget");
            return (Criteria) this;
        }

        public Criteria andAgentTargetNotIn(List<Integer> values) {
            addCriterion("agent_target not in", values, "agentTarget");
            return (Criteria) this;
        }

        public Criteria andAgentTargetBetween(Integer value1, Integer value2) {
            addCriterion("agent_target between", value1, value2, "agentTarget");
            return (Criteria) this;
        }

        public Criteria andAgentTargetNotBetween(Integer value1, Integer value2) {
            addCriterion("agent_target not between", value1, value2, "agentTarget");
            return (Criteria) this;
        }

        public Criteria andAgentL2TargetIsNull() {
            addCriterion("agent_l2_target is null");
            return (Criteria) this;
        }

        public Criteria andAgentL2TargetIsNotNull() {
            addCriterion("agent_l2_target is not null");
            return (Criteria) this;
        }

        public Criteria andAgentL2TargetEqualTo(Integer value) {
            addCriterion("agent_l2_target =", value, "agentL2Target");
            return (Criteria) this;
        }

        public Criteria andAgentL2TargetNotEqualTo(Integer value) {
            addCriterion("agent_l2_target <>", value, "agentL2Target");
            return (Criteria) this;
        }

        public Criteria andAgentL2TargetGreaterThan(Integer value) {
            addCriterion("agent_l2_target >", value, "agentL2Target");
            return (Criteria) this;
        }

        public Criteria andAgentL2TargetGreaterThanOrEqualTo(Integer value) {
            addCriterion("agent_l2_target >=", value, "agentL2Target");
            return (Criteria) this;
        }

        public Criteria andAgentL2TargetLessThan(Integer value) {
            addCriterion("agent_l2_target <", value, "agentL2Target");
            return (Criteria) this;
        }

        public Criteria andAgentL2TargetLessThanOrEqualTo(Integer value) {
            addCriterion("agent_l2_target <=", value, "agentL2Target");
            return (Criteria) this;
        }

        public Criteria andAgentL2TargetIn(List<Integer> values) {
            addCriterion("agent_l2_target in", values, "agentL2Target");
            return (Criteria) this;
        }

        public Criteria andAgentL2TargetNotIn(List<Integer> values) {
            addCriterion("agent_l2_target not in", values, "agentL2Target");
            return (Criteria) this;
        }

        public Criteria andAgentL2TargetBetween(Integer value1, Integer value2) {
            addCriterion("agent_l2_target between", value1, value2, "agentL2Target");
            return (Criteria) this;
        }

        public Criteria andAgentL2TargetNotBetween(Integer value1, Integer value2) {
            addCriterion("agent_l2_target not between", value1, value2, "agentL2Target");
            return (Criteria) this;
        }

        public Criteria andAgentL3TargetIsNull() {
            addCriterion("agent_l3_target is null");
            return (Criteria) this;
        }

        public Criteria andAgentL3TargetIsNotNull() {
            addCriterion("agent_l3_target is not null");
            return (Criteria) this;
        }

        public Criteria andAgentL3TargetEqualTo(Integer value) {
            addCriterion("agent_l3_target =", value, "agentL3Target");
            return (Criteria) this;
        }

        public Criteria andAgentL3TargetNotEqualTo(Integer value) {
            addCriterion("agent_l3_target <>", value, "agentL3Target");
            return (Criteria) this;
        }

        public Criteria andAgentL3TargetGreaterThan(Integer value) {
            addCriterion("agent_l3_target >", value, "agentL3Target");
            return (Criteria) this;
        }

        public Criteria andAgentL3TargetGreaterThanOrEqualTo(Integer value) {
            addCriterion("agent_l3_target >=", value, "agentL3Target");
            return (Criteria) this;
        }

        public Criteria andAgentL3TargetLessThan(Integer value) {
            addCriterion("agent_l3_target <", value, "agentL3Target");
            return (Criteria) this;
        }

        public Criteria andAgentL3TargetLessThanOrEqualTo(Integer value) {
            addCriterion("agent_l3_target <=", value, "agentL3Target");
            return (Criteria) this;
        }

        public Criteria andAgentL3TargetIn(List<Integer> values) {
            addCriterion("agent_l3_target in", values, "agentL3Target");
            return (Criteria) this;
        }

        public Criteria andAgentL3TargetNotIn(List<Integer> values) {
            addCriterion("agent_l3_target not in", values, "agentL3Target");
            return (Criteria) this;
        }

        public Criteria andAgentL3TargetBetween(Integer value1, Integer value2) {
            addCriterion("agent_l3_target between", value1, value2, "agentL3Target");
            return (Criteria) this;
        }

        public Criteria andAgentL3TargetNotBetween(Integer value1, Integer value2) {
            addCriterion("agent_l3_target not between", value1, value2, "agentL3Target");
            return (Criteria) this;
        }

        public Criteria andHospitalTargetIsNull() {
            addCriterion("hospital_target is null");
            return (Criteria) this;
        }

        public Criteria andHospitalTargetIsNotNull() {
            addCriterion("hospital_target is not null");
            return (Criteria) this;
        }

        public Criteria andHospitalTargetEqualTo(Integer value) {
            addCriterion("hospital_target =", value, "hospitalTarget");
            return (Criteria) this;
        }

        public Criteria andHospitalTargetNotEqualTo(Integer value) {
            addCriterion("hospital_target <>", value, "hospitalTarget");
            return (Criteria) this;
        }

        public Criteria andHospitalTargetGreaterThan(Integer value) {
            addCriterion("hospital_target >", value, "hospitalTarget");
            return (Criteria) this;
        }

        public Criteria andHospitalTargetGreaterThanOrEqualTo(Integer value) {
            addCriterion("hospital_target >=", value, "hospitalTarget");
            return (Criteria) this;
        }

        public Criteria andHospitalTargetLessThan(Integer value) {
            addCriterion("hospital_target <", value, "hospitalTarget");
            return (Criteria) this;
        }

        public Criteria andHospitalTargetLessThanOrEqualTo(Integer value) {
            addCriterion("hospital_target <=", value, "hospitalTarget");
            return (Criteria) this;
        }

        public Criteria andHospitalTargetIn(List<Integer> values) {
            addCriterion("hospital_target in", values, "hospitalTarget");
            return (Criteria) this;
        }

        public Criteria andHospitalTargetNotIn(List<Integer> values) {
            addCriterion("hospital_target not in", values, "hospitalTarget");
            return (Criteria) this;
        }

        public Criteria andHospitalTargetBetween(Integer value1, Integer value2) {
            addCriterion("hospital_target between", value1, value2, "hospitalTarget");
            return (Criteria) this;
        }

        public Criteria andHospitalTargetNotBetween(Integer value1, Integer value2) {
            addCriterion("hospital_target not between", value1, value2, "hospitalTarget");
            return (Criteria) this;
        }

        public Criteria andHospitalL2TargetIsNull() {
            addCriterion("hospital_l2_target is null");
            return (Criteria) this;
        }

        public Criteria andHospitalL2TargetIsNotNull() {
            addCriterion("hospital_l2_target is not null");
            return (Criteria) this;
        }

        public Criteria andHospitalL2TargetEqualTo(Integer value) {
            addCriterion("hospital_l2_target =", value, "hospitalL2Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL2TargetNotEqualTo(Integer value) {
            addCriterion("hospital_l2_target <>", value, "hospitalL2Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL2TargetGreaterThan(Integer value) {
            addCriterion("hospital_l2_target >", value, "hospitalL2Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL2TargetGreaterThanOrEqualTo(Integer value) {
            addCriterion("hospital_l2_target >=", value, "hospitalL2Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL2TargetLessThan(Integer value) {
            addCriterion("hospital_l2_target <", value, "hospitalL2Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL2TargetLessThanOrEqualTo(Integer value) {
            addCriterion("hospital_l2_target <=", value, "hospitalL2Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL2TargetIn(List<Integer> values) {
            addCriterion("hospital_l2_target in", values, "hospitalL2Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL2TargetNotIn(List<Integer> values) {
            addCriterion("hospital_l2_target not in", values, "hospitalL2Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL2TargetBetween(Integer value1, Integer value2) {
            addCriterion("hospital_l2_target between", value1, value2, "hospitalL2Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL2TargetNotBetween(Integer value1, Integer value2) {
            addCriterion("hospital_l2_target not between", value1, value2, "hospitalL2Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL3TargetIsNull() {
            addCriterion("hospital_l3_target is null");
            return (Criteria) this;
        }

        public Criteria andHospitalL3TargetIsNotNull() {
            addCriterion("hospital_l3_target is not null");
            return (Criteria) this;
        }

        public Criteria andHospitalL3TargetEqualTo(Integer value) {
            addCriterion("hospital_l3_target =", value, "hospitalL3Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL3TargetNotEqualTo(Integer value) {
            addCriterion("hospital_l3_target <>", value, "hospitalL3Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL3TargetGreaterThan(Integer value) {
            addCriterion("hospital_l3_target >", value, "hospitalL3Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL3TargetGreaterThanOrEqualTo(Integer value) {
            addCriterion("hospital_l3_target >=", value, "hospitalL3Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL3TargetLessThan(Integer value) {
            addCriterion("hospital_l3_target <", value, "hospitalL3Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL3TargetLessThanOrEqualTo(Integer value) {
            addCriterion("hospital_l3_target <=", value, "hospitalL3Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL3TargetIn(List<Integer> values) {
            addCriterion("hospital_l3_target in", values, "hospitalL3Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL3TargetNotIn(List<Integer> values) {
            addCriterion("hospital_l3_target not in", values, "hospitalL3Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL3TargetBetween(Integer value1, Integer value2) {
            addCriterion("hospital_l3_target between", value1, value2, "hospitalL3Target");
            return (Criteria) this;
        }

        public Criteria andHospitalL3TargetNotBetween(Integer value1, Integer value2) {
            addCriterion("hospital_l3_target not between", value1, value2, "hospitalL3Target");
            return (Criteria) this;
        }

        public Criteria andAgentCompletionIsNull() {
            addCriterion("agent_Completion is null");
            return (Criteria) this;
        }

        public Criteria andAgentCompletionIsNotNull() {
            addCriterion("agent_Completion is not null");
            return (Criteria) this;
        }

        public Criteria andAgentCompletionEqualTo(Integer value) {
            addCriterion("agent_Completion =", value, "agentCompletion");
            return (Criteria) this;
        }

        public Criteria andAgentCompletionNotEqualTo(Integer value) {
            addCriterion("agent_Completion <>", value, "agentCompletion");
            return (Criteria) this;
        }

        public Criteria andAgentCompletionGreaterThan(Integer value) {
            addCriterion("agent_Completion >", value, "agentCompletion");
            return (Criteria) this;
        }

        public Criteria andAgentCompletionGreaterThanOrEqualTo(Integer value) {
            addCriterion("agent_Completion >=", value, "agentCompletion");
            return (Criteria) this;
        }

        public Criteria andAgentCompletionLessThan(Integer value) {
            addCriterion("agent_Completion <", value, "agentCompletion");
            return (Criteria) this;
        }

        public Criteria andAgentCompletionLessThanOrEqualTo(Integer value) {
            addCriterion("agent_Completion <=", value, "agentCompletion");
            return (Criteria) this;
        }

        public Criteria andAgentCompletionIn(List<Integer> values) {
            addCriterion("agent_Completion in", values, "agentCompletion");
            return (Criteria) this;
        }

        public Criteria andAgentCompletionNotIn(List<Integer> values) {
            addCriterion("agent_Completion not in", values, "agentCompletion");
            return (Criteria) this;
        }

        public Criteria andAgentCompletionBetween(Integer value1, Integer value2) {
            addCriterion("agent_Completion between", value1, value2, "agentCompletion");
            return (Criteria) this;
        }

        public Criteria andAgentCompletionNotBetween(Integer value1, Integer value2) {
            addCriterion("agent_Completion not between", value1, value2, "agentCompletion");
            return (Criteria) this;
        }

        public Criteria andAgentL2CompletionIsNull() {
            addCriterion("agent_l2_Completion is null");
            return (Criteria) this;
        }

        public Criteria andAgentL2CompletionIsNotNull() {
            addCriterion("agent_l2_Completion is not null");
            return (Criteria) this;
        }

        public Criteria andAgentL2CompletionEqualTo(Integer value) {
            addCriterion("agent_l2_Completion =", value, "agentL2Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL2CompletionNotEqualTo(Integer value) {
            addCriterion("agent_l2_Completion <>", value, "agentL2Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL2CompletionGreaterThan(Integer value) {
            addCriterion("agent_l2_Completion >", value, "agentL2Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL2CompletionGreaterThanOrEqualTo(Integer value) {
            addCriterion("agent_l2_Completion >=", value, "agentL2Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL2CompletionLessThan(Integer value) {
            addCriterion("agent_l2_Completion <", value, "agentL2Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL2CompletionLessThanOrEqualTo(Integer value) {
            addCriterion("agent_l2_Completion <=", value, "agentL2Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL2CompletionIn(List<Integer> values) {
            addCriterion("agent_l2_Completion in", values, "agentL2Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL2CompletionNotIn(List<Integer> values) {
            addCriterion("agent_l2_Completion not in", values, "agentL2Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL2CompletionBetween(Integer value1, Integer value2) {
            addCriterion("agent_l2_Completion between", value1, value2, "agentL2Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL2CompletionNotBetween(Integer value1, Integer value2) {
            addCriterion("agent_l2_Completion not between", value1, value2, "agentL2Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL3CompletionIsNull() {
            addCriterion("agent_l3_Completion is null");
            return (Criteria) this;
        }

        public Criteria andAgentL3CompletionIsNotNull() {
            addCriterion("agent_l3_Completion is not null");
            return (Criteria) this;
        }

        public Criteria andAgentL3CompletionEqualTo(Integer value) {
            addCriterion("agent_l3_Completion =", value, "agentL3Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL3CompletionNotEqualTo(Integer value) {
            addCriterion("agent_l3_Completion <>", value, "agentL3Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL3CompletionGreaterThan(Integer value) {
            addCriterion("agent_l3_Completion >", value, "agentL3Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL3CompletionGreaterThanOrEqualTo(Integer value) {
            addCriterion("agent_l3_Completion >=", value, "agentL3Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL3CompletionLessThan(Integer value) {
            addCriterion("agent_l3_Completion <", value, "agentL3Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL3CompletionLessThanOrEqualTo(Integer value) {
            addCriterion("agent_l3_Completion <=", value, "agentL3Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL3CompletionIn(List<Integer> values) {
            addCriterion("agent_l3_Completion in", values, "agentL3Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL3CompletionNotIn(List<Integer> values) {
            addCriterion("agent_l3_Completion not in", values, "agentL3Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL3CompletionBetween(Integer value1, Integer value2) {
            addCriterion("agent_l3_Completion between", value1, value2, "agentL3Completion");
            return (Criteria) this;
        }

        public Criteria andAgentL3CompletionNotBetween(Integer value1, Integer value2) {
            addCriterion("agent_l3_Completion not between", value1, value2, "agentL3Completion");
            return (Criteria) this;
        }

        public Criteria andAgentVisitIsNull() {
            addCriterion("agent_visit is null");
            return (Criteria) this;
        }

        public Criteria andAgentVisitIsNotNull() {
            addCriterion("agent_visit is not null");
            return (Criteria) this;
        }

        public Criteria andAgentVisitEqualTo(Integer value) {
            addCriterion("agent_visit =", value, "agentVisit");
            return (Criteria) this;
        }

        public Criteria andAgentVisitNotEqualTo(Integer value) {
            addCriterion("agent_visit <>", value, "agentVisit");
            return (Criteria) this;
        }

        public Criteria andAgentVisitGreaterThan(Integer value) {
            addCriterion("agent_visit >", value, "agentVisit");
            return (Criteria) this;
        }

        public Criteria andAgentVisitGreaterThanOrEqualTo(Integer value) {
            addCriterion("agent_visit >=", value, "agentVisit");
            return (Criteria) this;
        }

        public Criteria andAgentVisitLessThan(Integer value) {
            addCriterion("agent_visit <", value, "agentVisit");
            return (Criteria) this;
        }

        public Criteria andAgentVisitLessThanOrEqualTo(Integer value) {
            addCriterion("agent_visit <=", value, "agentVisit");
            return (Criteria) this;
        }

        public Criteria andAgentVisitIn(List<Integer> values) {
            addCriterion("agent_visit in", values, "agentVisit");
            return (Criteria) this;
        }

        public Criteria andAgentVisitNotIn(List<Integer> values) {
            addCriterion("agent_visit not in", values, "agentVisit");
            return (Criteria) this;
        }

        public Criteria andAgentVisitBetween(Integer value1, Integer value2) {
            addCriterion("agent_visit between", value1, value2, "agentVisit");
            return (Criteria) this;
        }

        public Criteria andAgentVisitNotBetween(Integer value1, Integer value2) {
            addCriterion("agent_visit not between", value1, value2, "agentVisit");
            return (Criteria) this;
        }

        public Criteria andHospitalCompletionIsNull() {
            addCriterion("hospital_Completion is null");
            return (Criteria) this;
        }

        public Criteria andHospitalCompletionIsNotNull() {
            addCriterion("hospital_Completion is not null");
            return (Criteria) this;
        }

        public Criteria andHospitalCompletionEqualTo(Integer value) {
            addCriterion("hospital_Completion =", value, "hospitalCompletion");
            return (Criteria) this;
        }

        public Criteria andHospitalCompletionNotEqualTo(Integer value) {
            addCriterion("hospital_Completion <>", value, "hospitalCompletion");
            return (Criteria) this;
        }

        public Criteria andHospitalCompletionGreaterThan(Integer value) {
            addCriterion("hospital_Completion >", value, "hospitalCompletion");
            return (Criteria) this;
        }

        public Criteria andHospitalCompletionGreaterThanOrEqualTo(Integer value) {
            addCriterion("hospital_Completion >=", value, "hospitalCompletion");
            return (Criteria) this;
        }

        public Criteria andHospitalCompletionLessThan(Integer value) {
            addCriterion("hospital_Completion <", value, "hospitalCompletion");
            return (Criteria) this;
        }

        public Criteria andHospitalCompletionLessThanOrEqualTo(Integer value) {
            addCriterion("hospital_Completion <=", value, "hospitalCompletion");
            return (Criteria) this;
        }

        public Criteria andHospitalCompletionIn(List<Integer> values) {
            addCriterion("hospital_Completion in", values, "hospitalCompletion");
            return (Criteria) this;
        }

        public Criteria andHospitalCompletionNotIn(List<Integer> values) {
            addCriterion("hospital_Completion not in", values, "hospitalCompletion");
            return (Criteria) this;
        }

        public Criteria andHospitalCompletionBetween(Integer value1, Integer value2) {
            addCriterion("hospital_Completion between", value1, value2, "hospitalCompletion");
            return (Criteria) this;
        }

        public Criteria andHospitalCompletionNotBetween(Integer value1, Integer value2) {
            addCriterion("hospital_Completion not between", value1, value2, "hospitalCompletion");
            return (Criteria) this;
        }

        public Criteria andHospitalL2CompletionIsNull() {
            addCriterion("hospital_l2_Completion is null");
            return (Criteria) this;
        }

        public Criteria andHospitalL2CompletionIsNotNull() {
            addCriterion("hospital_l2_Completion is not null");
            return (Criteria) this;
        }

        public Criteria andHospitalL2CompletionEqualTo(Integer value) {
            addCriterion("hospital_l2_Completion =", value, "hospitalL2Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL2CompletionNotEqualTo(Integer value) {
            addCriterion("hospital_l2_Completion <>", value, "hospitalL2Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL2CompletionGreaterThan(Integer value) {
            addCriterion("hospital_l2_Completion >", value, "hospitalL2Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL2CompletionGreaterThanOrEqualTo(Integer value) {
            addCriterion("hospital_l2_Completion >=", value, "hospitalL2Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL2CompletionLessThan(Integer value) {
            addCriterion("hospital_l2_Completion <", value, "hospitalL2Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL2CompletionLessThanOrEqualTo(Integer value) {
            addCriterion("hospital_l2_Completion <=", value, "hospitalL2Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL2CompletionIn(List<Integer> values) {
            addCriterion("hospital_l2_Completion in", values, "hospitalL2Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL2CompletionNotIn(List<Integer> values) {
            addCriterion("hospital_l2_Completion not in", values, "hospitalL2Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL2CompletionBetween(Integer value1, Integer value2) {
            addCriterion("hospital_l2_Completion between", value1, value2, "hospitalL2Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL2CompletionNotBetween(Integer value1, Integer value2) {
            addCriterion("hospital_l2_Completion not between", value1, value2, "hospitalL2Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL3CompletionIsNull() {
            addCriterion("hospital_l3_Completion is null");
            return (Criteria) this;
        }

        public Criteria andHospitalL3CompletionIsNotNull() {
            addCriterion("hospital_l3_Completion is not null");
            return (Criteria) this;
        }

        public Criteria andHospitalL3CompletionEqualTo(Integer value) {
            addCriterion("hospital_l3_Completion =", value, "hospitalL3Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL3CompletionNotEqualTo(Integer value) {
            addCriterion("hospital_l3_Completion <>", value, "hospitalL3Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL3CompletionGreaterThan(Integer value) {
            addCriterion("hospital_l3_Completion >", value, "hospitalL3Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL3CompletionGreaterThanOrEqualTo(Integer value) {
            addCriterion("hospital_l3_Completion >=", value, "hospitalL3Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL3CompletionLessThan(Integer value) {
            addCriterion("hospital_l3_Completion <", value, "hospitalL3Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL3CompletionLessThanOrEqualTo(Integer value) {
            addCriterion("hospital_l3_Completion <=", value, "hospitalL3Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL3CompletionIn(List<Integer> values) {
            addCriterion("hospital_l3_Completion in", values, "hospitalL3Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL3CompletionNotIn(List<Integer> values) {
            addCriterion("hospital_l3_Completion not in", values, "hospitalL3Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL3CompletionBetween(Integer value1, Integer value2) {
            addCriterion("hospital_l3_Completion between", value1, value2, "hospitalL3Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalL3CompletionNotBetween(Integer value1, Integer value2) {
            addCriterion("hospital_l3_Completion not between", value1, value2, "hospitalL3Completion");
            return (Criteria) this;
        }

        public Criteria andHospitalVisitIsNull() {
            addCriterion("hospital_visit is null");
            return (Criteria) this;
        }

        public Criteria andHospitalVisitIsNotNull() {
            addCriterion("hospital_visit is not null");
            return (Criteria) this;
        }

        public Criteria andHospitalVisitEqualTo(Integer value) {
            addCriterion("hospital_visit =", value, "hospitalVisit");
            return (Criteria) this;
        }

        public Criteria andHospitalVisitNotEqualTo(Integer value) {
            addCriterion("hospital_visit <>", value, "hospitalVisit");
            return (Criteria) this;
        }

        public Criteria andHospitalVisitGreaterThan(Integer value) {
            addCriterion("hospital_visit >", value, "hospitalVisit");
            return (Criteria) this;
        }

        public Criteria andHospitalVisitGreaterThanOrEqualTo(Integer value) {
            addCriterion("hospital_visit >=", value, "hospitalVisit");
            return (Criteria) this;
        }

        public Criteria andHospitalVisitLessThan(Integer value) {
            addCriterion("hospital_visit <", value, "hospitalVisit");
            return (Criteria) this;
        }

        public Criteria andHospitalVisitLessThanOrEqualTo(Integer value) {
            addCriterion("hospital_visit <=", value, "hospitalVisit");
            return (Criteria) this;
        }

        public Criteria andHospitalVisitIn(List<Integer> values) {
            addCriterion("hospital_visit in", values, "hospitalVisit");
            return (Criteria) this;
        }

        public Criteria andHospitalVisitNotIn(List<Integer> values) {
            addCriterion("hospital_visit not in", values, "hospitalVisit");
            return (Criteria) this;
        }

        public Criteria andHospitalVisitBetween(Integer value1, Integer value2) {
            addCriterion("hospital_visit between", value1, value2, "hospitalVisit");
            return (Criteria) this;
        }

        public Criteria andHospitalVisitNotBetween(Integer value1, Integer value2) {
            addCriterion("hospital_visit not between", value1, value2, "hospitalVisit");
            return (Criteria) this;
        }

        public Criteria andCreatorIsNull() {
            addCriterion("creator is null");
            return (Criteria) this;
        }

        public Criteria andCreatorIsNotNull() {
            addCriterion("creator is not null");
            return (Criteria) this;
        }

        public Criteria andCreatorEqualTo(String value) {
            addCriterion("creator =", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotEqualTo(String value) {
            addCriterion("creator <>", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorGreaterThan(String value) {
            addCriterion("creator >", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorGreaterThanOrEqualTo(String value) {
            addCriterion("creator >=", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLessThan(String value) {
            addCriterion("creator <", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLessThanOrEqualTo(String value) {
            addCriterion("creator <=", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLike(String value) {
            addCriterion("creator like", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotLike(String value) {
            addCriterion("creator not like", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorIn(List<String> values) {
            addCriterion("creator in", values, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotIn(List<String> values) {
            addCriterion("creator not in", values, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorBetween(String value1, String value2) {
            addCriterion("creator between", value1, value2, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotBetween(String value1, String value2) {
            addCriterion("creator not between", value1, value2, "creator");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(LocalDateTime value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(LocalDateTime value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(LocalDateTime value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(LocalDateTime value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(LocalDateTime value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(LocalDateTime value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<LocalDateTime> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<LocalDateTime> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(LocalDateTime value1, LocalDateTime value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}